package com.example.warehouse.bus.service;

import com.example.warehouse.bus.pojo.entity.BusCustomer;
import com.example.warehouse.bus.pojo.entity.BusGoods;
import com.example.warehouse.bus.pojo.param.BusGoodsAddNewParam;
import com.example.warehouse.bus.pojo.param.BusProviderAddNewParam;
import com.example.warehouse.bus.pojo.vo.BusCustomerStandardVO;
import com.example.warehouse.bus.pojo.vo.BusGoodsStandardVO;
import com.example.warehouse.common.pojo.vo.PageData;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Linger
 * @date 2023-07-07 8:58
 * @desciption:处理供应商数据的业务接口
 */
@Transactional
public interface IBusGoodsService {
    /**
     * 启用状态的显示文本
     */
    String ENABLE_TEXT[] = {"禁用", "启用"};
    /**
    /**
     * 添加商品
     *
     * @param busGoodsAddNewParam 商品数据
     */
    void addNewBusGoods(BusGoodsAddNewParam busGoodsAddNewParam);
    /**
     * 删除商品
     *
     * @param id ID
     */
    void delete(Long id);

    /**
     * 修改商品
     *
     * @param busGoods 修改商品数据
     */
    void update(BusGoods busGoods);

    BusGoodsStandardVO getStandardByGoodsId(Long id);
    /**
     * 模糊查询
     * @param goodsName 商品名
     * @param providerId 供应商ID
     * @param promitCode 批准文号
     * @param producePlace 商品产地
     * @param productCode 生产批号
     * @param description 商品描述
     * @return
     */
    PageData<BusGoodsStandardVO> queryByKeyWord(Integer pageNum,String goodsName, Long providerId, String promitCode, String producePlace, String productCode, String description);

    /**
     * 查询商品列表,默认参数
     *
     * @param pageNum 页码
     * @return 列表
     */
    PageData<BusGoods> list(Integer pageNum);
    PageData<BusGoods> listAsc(Integer pageNum);
    PageData<BusGoods> listDesc(Integer pageNum);

    /**
     * 查询商品列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 商品列表
     */
    PageData<BusGoods> list(Integer pageNum, Integer pageSize);

    void setGoodsDisable(Long id);

    void setGoodsEnable(Long id);
}
